<!DOCTYPE HTML>
<html>
<head>
<title>Pause | AutoHotkey</title>
<meta name="description" content="The Pause command pauses the script's current thread." />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>Pause</h1>

<p>暂停脚本的<a href="../misc/Threads.htm">当前线程</a>.</p>

<pre class="Syntax"><span class="func">Pause</span> <span class="optional">, OnOffToggle, OperateOnUnderlyingThread</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>OnOffToggle</dt>
  <dd><p>如果为空或省略, 则默认为 Toggle. 否则, 请指定下列单词的其中一个:</p>
      <p><strong>Toggle</strong>: 如果在<a href="../misc/Threads.htm">当前线程</a>下的潜在线程处于运行状态, 则暂停当前线程, 否则让潜在的线程恢复运行.</p>
      <p><strong>On</strong>: 暂停当前线程.</p>
      <p><strong>Off</strong>: 如果在当前线程下的线程已经处于暂停状态, 则把它恢复到取消暂停状态. 在其他情况下, 此命令没有效果.</p>
    <p><span class="ver">[v1.1.30+]:</span> 十进制值 1, 0 和 -1 可以分别用来代替 On, Off 和 Toggle.</p>
    </dd>

  <dt>OperateOnUnderlyingThread</dt>
  <dd><p>对于 <code>Pause Off</code> 会忽略此参数, 因为它总是对潜在的线程进行操作. 在打开或切换的两种情况时, 只有在打开 Pause 时才不会忽略此设置(包含使用 Toggle 打开的情况).</p>
      <p>请指定下面的其中一个数字:</p>
      <p><strong>0</strong>(或省略): 此命令会暂停当前线程; 即正在运行 Pause 命令的这个线程.</p>
    <p><strong>1</strong>: 此命令会标记在当前线程下面的线程为暂停, 这样当那个线程恢复时它会结束它之前运行的命令(如果有) 然后进入暂停状态. 如果当前线程下面没有线程, 则暂停脚本自身, 这样阻止<a href="SetTimer.htm">计时器</a>的运行(这样的效果和当脚本没有线程时使用了菜单项 "Pause Script" 一样).</p>
    <p class="note"><strong>注意</strong>: <a href="../Variables.htm#IsPaused">A_IsPaused</a> 包含了潜在线程的暂停状态.</p></dd>

</dl>

<h2 id="Remarks">备注</h2>
<p>默认情况下, 脚本也可以通过它的<a href="../Program.htm#tray-icon">托盘图标</a>或<a href="../Program.htm#main-window">主窗口</a>来暂停.</p>
<p>与 <a href="Suspend.htm">Suspend</a> 禁用<a href="../Hotkeys.htm">热键</a>和<a href="Hotstrings.htm">热字串</a>不同, 打开暂停状态会冻结<a href="../misc/Threads.htm">当前线程</a>. 副作用是, 在它下面的任何被中断线程也将处于潜伏状态.</p>
<p>暂停任意线程后, <a href="SetTimer.htm">计时器</a>不会运行. 与之相比, 明确地启动的线程(例如, <a href="../Hotkeys.htm">热键</a>和<a href="Menu.htm">菜单项</a>) 仍然可以运行; 但当它们的<a href="../misc/Threads.htm">线程</a>结束时, 潜在的线程仍会被暂停. 换句话说, 每个线程都能独立于其他线程被暂停.</p>
<p>每当脚本的<a href="../misc/Threads.htm">当前线程</a>处于暂停状态时, 托盘图标的颜色会从绿色变成红色. 通过冻结图标可以阻止这个图标颜色的改变, 这是使用最后一个参数为 1 的 Menu 命令实现的. 例如:</p>
  <pre><a href="Menu.htm">Menu</a>, Tray, Icon, C:\My Icon.ico, , 1</pre>
<p>要禁用<a href="SetTimer.htm">计时器</a>而不暂停脚本, 请使用 <a href="Thread.htm">Thread, NoTimers</a>.</p>
<p>当脚本显示任意类型的<a href="Menu.htm">菜单</a>(托盘菜单, 菜单栏, GUI 上下文菜单, 等等) 时脚本总是处于停住状态(虽然不是正式地暂停).</p>

<h2 id="Related">相关</h2>
<p><a href="Suspend.htm">Suspend</a>, <a href="Menu.htm">Menu</a>, <a href="ExitApp.htm">ExitApp</a>, <a href="../misc/Threads.htm">线程</a>, <a href="SetTimer.htm">SetTimer</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExHotkey">
<p><a class="ex_number" href="#ExHotkey"></a> Press a hotkey once to pause the script. Press it again to unpause.</p>
<pre>Pause::Pause  <em>; The Pause/Break key.</em>
#p::Pause  <em>; Win+P</em></pre>
</div>

<div class="ex" id="PostMessage">
<p><a class="ex_number" href="#PostMessage"></a> 发送 Pause 命令到另一个脚本.</p>
<pre><a href="DetectHiddenWindows.htm">DetectHiddenWindows</a>, On
WM_COMMAND := 0x0111
ID_FILE_PAUSE := 65403
<a href="PostMessage.htm">PostMessage</a>, WM_COMMAND, ID_FILE_PAUSE,,, C:\YourScript.ahk ahk_class AutoHotkey</pre>
</div>

</body>
</html>